gpt4 book ai didi

tcl - 考虑到 pkg_mkindex 已被弃用,如何管理 Tcl 包?

转载 作者:行者123 更新时间:2023-12-01 02:14:23 25 4
gpt4 key购买 nike

我很惊讶地看到 pkg_mkindex 已被弃用( http://wiki.tcl.tk/3388 ),甚至是危险的( http://wiki.tcl.tk/3382 )。

现在,'deprecated' 的意思是“已被一种新的、更好的方法取代,旧的方法不应再用于新项目”。

然而,我遇到的唯一替代建议是手动创建 pkgIndex.tcl 文件,这在我看来并不像包创建方面的进步。

所以,有一个问题是给有经验的 Tcl 开发人员的:如果 pkg_mkindex 是不应该再使用的东西,那么你如何管理包?

最佳答案

对于大多数包作者来说,在您开始编写包时运行一次它根本不是问题。但是它生成的脚本(在 pkgIndex.tcl 中)非常简单,您可以通过调整该脚本以满足您自己的实际需求来做得更好。

幸运的是,如果您使用的是 Tcl 8.5 或更高版本,您可以使用 apply把事情简化很多。这意味着您可以像这样生成脚本:

### Read this as if it is:
#### package ifneeded $pkg $version [list apply {dir $thescript} $dir]
package ifneeded MyFunkyPackage 1.2.3 [list apply {dir {
# Work out the right binary library name
switch $tcl_platform(platform) {
windows { set lib MFP123.DLL }
default { set lib libMFP.1.2.3[info sharedlibextension] }
}
load [file join $dir $lib] MFP
# Source a bunch of scripts with their encodings forced to UTF-8
foreach script [glob -directory $dir MFP*.tcl] {
source -encoding utf-8 $script
}
}} $dir]

好的,这是一个非常花哨的包定义脚本,但是用其他任何方式都会很尴尬——在双引号字符串中构造脚本会很痛苦,而且可能也容易出错——但在这里却是微不足道的,因为你有本地变量,结构化编程结构,作品。 (您也可以通过在 configure 期间生成正确的东西来做到这一点,假设您遵循 TEA 模型,但这需要您乐于使用 autoconf,这绝对不适合所有人……)

关于tcl - 考虑到 pkg_mkindex 已被弃用,如何管理 Tcl 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com