首页 > 解决方案 > 获取已编译 tcl 的配置标志

问题描述

我有一个编译的 tcl 版本 8.4 并且想检查--enable-threads它是否在编译时设置?

或者是否有其他方法可以获取所有通过标志的列表。谢谢

标签: tcl

解决方案


重要的提示!

Tcl 8.4 没有长期支持。即使发现灾难性的安全错误,也绝对不会对其进行进一步的更改;如果 8.4.20 未解决您的问题,则需要转到 8.5 或更高版本。我们不知道有任何此类安全问题,但我们不会寻找,如果发现也不会修复它们。

此处的支持仅基于“因为我们感觉很好”。您不应基于 8.4 创建新作品。

全局数组元素是在当前使用的 Tcl 库构建时使用线程支持tcl_platform(threaded)定义和设置的。1至少从 Tcl 8.4 开始就是如此。以下是如何可靠地获得可以检查的漂亮布尔值:

set isThreaded [expr {
    [info exist tcl_platform(threaded)] && $tcl_platform(threaded)
}]

注意:有些平台实际上总是线程化的(因为它们在内部是如何工作的;如果我没记错的话,Windows 和 OSX 就是这种情况)。Tcl 的未来版本(8.7 以后)将默认为到处线程化;从 9.0 开始,这将是唯一受支持的构建模式。您仍然需要 Thread 包来处理脚本中的线程,但这是目前的标准扩展。


推荐阅读