何时加载 Tcl 库包?

When Tcl library package is loaded?

当您创建新的解释器时,它已经包含了 Tcl 包。有人知道什么时候加载这个包吗?是否有任何启动脚本调用 package ifneeded Tcl {....}?

Tcl 包在调用 Tcl_CreateInterp() 期间由内部设置代码 运行 加载,可以认为是 Tcl 手册中列出的命令的定义(明确记录的除外)除此以外)。它出现在包系统中的主要用途是它可以让你以一种简洁的方式记录你需要的 Tcl 版本:

package require Tcl 8.6

没有 ifneeded 脚本;它已经根据定义存在(并且必须存在,因为 package 命令由它定义)。在 C 级别,它更有用。 Tcl 包实际上发布了 Tcl 的存根 table,它允许 Tcl 拥有极其 stable ABI;存根机制隐藏了次要版本之间变化的血淋淋的细节,并允许扩展包不链接到特定版本的 Tcl,即使 Tcl 解释器正在使用静态构建…