TCL根据版本不支持哪些命令和功能
Posted
技术标签:
【中文标题】TCL根据版本不支持哪些命令和功能【英文标题】:Which commands and functions are not supported in TCL based on the version 【发布时间】:2016-11-26 02:15:42 【问题描述】:到目前为止,我一直在使用 TCL 8.6,但最近我不得不回到 8.0,因为我使用的程序只支持 8.0
问题是我找不到文档或比较哪些新命令和功能兼容以及哪些不兼容
是否有包含此类信息的网站
//请注意,我查看了 tcl.tk 网站,它仅提供每个版本的新功能,但没有那么具体
【问题讨论】:
我感受到你的痛苦。从 2005 年到 2012 年,我使用了一个带有嵌入式 tcl 8.0p2 的数据库。确保为tcl.tk/man/tcl8.0/TclCmd/contents.htm添加书签 【参考方案1】:This page 及其链接的页面包含有关命令和语法更改的相当详细的信息。您可能需要向后搜索才能找到支持您想知道的功能的第一个版本。
【讨论】:
【参考方案2】:http://www.tcl.tk/man/ 有从 7.5 到 8.6 的各种版本的 Tcl 命令文档的链接,尽管出于某种原因它跳过了 8.1。
【讨论】:
真的不建议在生产中使用 8.1;它有一些直到 8.2 才真正解决的重大故障。从 8.0 开始并没有太多实际的命令更改,但是许多事情的工作方式发生了很大变化(因为那时 Tcl 获得了 unicode 支持)。【参考方案3】:只支持8.0?那是比较老了。 (我还有一些类似的系统,但它们实际上只是在维持生命。)
版本之间发生变化的第二个最明确的来源是任何 Tcl 源代码分发中的 changes
文件。 (第一个最准确的来源是比较源代码,但由于各种不重要的原因,这在 8.1 之前有点烦人。)您可以为此使用current version,因为该文件的那些旧部分实际上是静态的; here's 相当于 Tk。该文件包含的信息比您可能需要的多很多,包括提到许多更重要的错误修复以及一些在测试期间功能有点波动的情况(我们尽量避免这样做,但它确实发生了偶尔)。
但是,很早以前的大件事情相当简单,所以我们可以将要注意的事情缩小到这些大件物品:
在 Tcl 8.5 中引入了扩展语法 (*...
)。在此之前,您使用eval
一个很多更多。
现代 Tcl 中有一大堆命令在当时根本不存在。其中一些有解决方法;尝试查看您期望的实际缺少的内容然后再次在这里询问比尝试预测所有内容更容易。一些已知的异常完全在 8.0 中不可用:
字典
合奏
协程
TclOO 对象系统
Ttk 小部件集
Tcl 8.0 假定字符始终是 8 位数量并且不尝试理解编码。它只是围绕着字节。 (这也意味着encoding
命令不存在,fconfigure
的-encoding
选项也不存在。)
确保只在脚本本身中使用 ASCII。减轻疼痛。
8.0 中的 RE 引擎与 8.1 以后使用的引擎不同。它要简单得多,并且只支持较新引擎的一小部分功能。
8.0 及之前的线程支持不适合胆小的人。 假设您的代码是单线程的并避免很多困难的调试。
【讨论】:
以上是关于TCL根据版本不支持哪些命令和功能的主要内容,如果未能解决你的问题,请参考以下文章