0
最近我發現,如果包裝需要用不存在的包名和在auto_path中pkgIndex文件中的一個評價再次包含包不存在包需要再tclPkgUnknown進入無限遞歸。 我不知道是不是允許從pkgIndex評估包需求或這是一個隱藏的錯誤?包需要內部pkgIndex
最近我發現,如果包裝需要用不存在的包名和在auto_path中pkgIndex文件中的一個評價再次包含包不存在包需要再tclPkgUnknown進入無限遞歸。 我不知道是不是允許從pkgIndex評估包需求或這是一個隱藏的錯誤?包需要內部pkgIndex
一個pkgIndex.tcl
文件應該運行package require
本身。它應該只是調用package ifneeded
告訴軟件包管理系統如何加載特定的包的特定版本。這是因爲索引腳本的加載時間有點不同 - 在軟件包發現期間 - 而不一定是在真正需要該軟件包版本的時候。如果你堅持這個規則,你就不會有任何問題。
下面是這種東西應該是在裏面。
# Maybe some comments here?
package ifneeded Foo 1.2.3 [list source [file join $dir foo.1-2-3.tcl]]
The $dir
?這只是包含索引文件的目錄的名稱,爲方便起見。 (它實際上也是一個局部變量; 在內部被評估爲一個過程上下文。)
爲什麼你要在pkgIndex文件中有一個'package require'?這只是對pkgIndex文件的濫用,而不是錯誤。 –
在系統中,我們保持形式封裝加密的所有TCL文件需要ENCR dencryptAndEval {加密腳本} – ArmanHunanyan
有人能告訴我一個關於TCL的包文件比這更多的信息https://www.tcl.tk/man/tcl8.5 /tutorial/Tcl31.html。特別是如何創建C++代碼的tcl包 – ArmanHunanyan