英语法语西班牙文

OnWorks 网站图标

critcl - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 critcl

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 critcl,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


critcl - Critcl 应用程序

概要


批评 ?选项……? ?文件......?

_________________________________________________________________

商品描述


欢迎光临 C 运行时 In TCL, 临界值 简而言之,一个构建C扩展包的系统
用于动态 Tcl,来自嵌入在 Tcl 脚本中的 C 代码,适用于所有希望制作
他们的代码运行得更快。

本文档是参考手册页 批评 命令。 它的目标受众是
人们必须使用构建包 批评 用于部署。 包的编写者
嵌入式 C 代码可以忽略此文件。 如果您需要整体概览
系统代替,请去阅读 介绍 临界值.

此应用程序驻留在 CriTcl 的应用程序层中。

*==================*
|应用 |
| 评论 |
| Critcl::应用程序 |
*==================*

+----------------+
|核心包|
| 评论 |
| Critcl::util |
+----------------+

+----------------+
|支持包|
| 存根::* |
| md5,平台|
| ... |
+----------------+

该应用程序支持以下通用命令行:

批评 ?选项……? ?文件......?
支持的确切选项集、它们的含义和交互在
部分 应用程序 附加选项 以下。 有关更多示例,请参阅部分
文档中的“Building Critcl Packages” 运用 临界值.

申请须知 配置


理解以下选项

-v

- 版
这些选项会导致 critcl 将其版本打印到 标准输出 然后退出。

-I
此选项指定在编译期间使用的附加全局包含路径
的“.critcl" 文件。如果多次指定,则使用所有值。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-L
此选项指定在链接期间使用的附加全局库搜索路径
的“.critcl" 文件。如果多次指定,则使用所有值。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-缓存
此选项指定用作结果缓存的目录路径。 如果不
指定它默认为“〜/.critcl/",或者,在生成包时(请参阅
选项 -包装 下面),到“〜/.critcl/.", 当多次指定
使用最后一个值。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-清洁 当指定时,结果缓存被清空,即找到的所有文件和目录
里面被删除)在编译开始之前。

此选项在生成包时无关紧要(请参阅选项 -包装 下面)因为
此模式以唯一且空的结果缓存开始。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-config
此选项指定自定义配置文件的路径,允许用户
使用他们自己的目标规范。 如果未指定硬连线默认值
而是使用嵌入在系统核心中的配置。 当指定多个
使用最后一个值的次数。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-调试 模式
此选项通过调试激活编译。 它接受以下模式。 什么时候
指定多次使用所有模式的组合。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

记忆 此模式激活对通过 Tcl 进行的分配的内存调试
核心。

符号
此模式激活所有“.c" 带有调试符号的文件。

所有 此模式同时激活 记忆符号.

-禁用 姓名
此选项设置自定义构建配置选项的值 姓名false.
它相当于“-with-姓名 0“。

仅当“.critcl" 实际上是输入文件
定义并使用自定义构建配置选项 姓名.

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-使能够 姓名
此选项设置自定义构建配置选项的值 姓名true.
它相当于“-with-姓名 1“。

仅当“.critcl" 实际上是输入文件
定义并使用自定义构建配置选项 姓名.

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-力 当指定的编译总是完成时,即使文件的共享库
已经存在。 这种效果可以通过清理缓存(见上文)来实现
嗯,除了它在破坏文件方面很懒惰,不会破坏文件
与我们正在构建的无关。

此选项在生成包时无关紧要(请参阅选项 -包装 下面)因为
此模式以唯一且空的结果缓存开始。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-救命 此选项将导致系统打印有关命令行语法的简短帮助
和选项,然后退出应用程序。

-保持 此选项将导致系统保持“.c" 中运行生成的文件
结果缓存。 生成包时(见选项 -包装 下面)这也可以防止
删除运行使用的唯一结果缓存。 此选项旨在
用于调试 批评 本身,在可能需要检查的地方
生成的 C 代码。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-libdir
此选项指定通过选项生成的包的路径 -包装
被保存。 它还指定了搜索库的路径,例如 -L。 何时
指定多次使用最后一个值。 当完全没有指定时
默认, ”LIB", 被使用。注意这是一个相对路径,将结果放入
当前工作目录。

-包括目录
此选项指定保存任何生成的包头的路径。
它还指定了搜索包含文件的路径,例如 for -I. 指定时
多次使用最后一个值作为目标,但是所有以前的值
保留在包含搜索路径上。 当完全没有指定默认值时,
"包括", 被使用。注意这是一个相对路径,将结果放入
当前工作目录。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-包装 应用程序的默认模式是构建“.critcl" 上列出的文件
命令行并将结果保存在结果缓存中。 基本上预先填充
缓存重要的包,减少使用这些所需的时间
包。

此选项激活其他模式之一,包生成。 在这种模式下
像往常一样首先处理输入文件,然后将它们捆绑到
生成单个库和附加文件以使该库可用作
一个普通的 Tcl 包。

选项 -茶,见下文,调用最后一个模式,TEA 生成。 如果两种选择,
-包装-茶 指定最后一个指定获胜。

在这种模式下的选项 -清洁-力 无关紧要且被忽略。 相比之下,
选项 -libdir 在这方面和 -茶 模式。

指定此选项后,第一个文件参数的基本名称
options 用作要生成的包的名称。 如果扩展那个
文件表示共享库(“。所以“”.sl“”动态库“和”。dll文件“) 也是
从输入文件集中删除。 一种 ”.tcl" 文件作为输入的一部分保留。A
假定没有扩展名的单个文件实际上具有“.tcl" 扩展名。A
没有扩展名的文件,但后面的其他输入文件被视为
一个适当的共享库,并从输入文件集中删除。

例子:
=> 包名是:foo
=> 输入文件是:foo.tcl
=> 包名是:foo
=> 输入文件是:bar.tcl
=> 包名是:foo
=> 输入文件是:foo.tcl
=> 包名是:foo
=> 输入文件是:bar.tcl

-表演 指定此选项时,将导致系统打印
选择的目标 标准输出 然后退出。 目标的选择会受到影响
通过选项 -目标 (见下文)。

-显示所有
指定此选项时,将导致系统打印整个选定的
配置文件到 标准输出 然后退出。 配置文件的选择可以
通过选项受到影响 -config (往上看)。

-目标 姓名
此选项使用用户的选择覆盖构建目标的默认选择。
多次指定时,将使用最后一个值。 命名的目标必须存在
在选择的配置文件中。 使用选项 -目标 (见下文)以获取列表
可接受的目标。 可以通过以下方式影响配置文件的选择
选项 -config (往上看)。

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 下文)。

-目标
指定此选项时,将导致系统打印所有已知的列表
目标从所选的配置文件到 标准输出 然后退出。 的选择
可以通过选项影响配置文件 -config (往上看)。

-茶 类似于选项 -包装,除了调用模式不生成二进制文件,
但是包含“.critcl" 文件、它的伴随文件和一个
具有大部分所需支持代码的 TEA-lookalike 构建系统(包括副本
critcl 包)。

如果两个选项,即 -包装-茶 指定最后一个指定获胜。

在这种模式下的选项 -I, -L, -清洁, -力, -缓存, -包括目录, -使能够,
-禁用-与-FOO 无关紧要且被忽略。 相比之下,选项 -libdir
在这方面和 -包装 模式。

指定此选项后,第一个文件参数的基本名称
options 用作要生成的包的名称。 如果扩展那个
文件表示共享库(“。所以“”.sl“”动态库“和”。dll文件“) 也是
从输入文件集中删除。 一种 ”.tcl" 文件作为输入的一部分保留。A
假定没有扩展名的单个文件实际上具有“.tcl" 扩展名。A
没有扩展名的文件,但后面的其他输入文件被视为
一个适当的共享库,并从输入文件集中删除。

例子:
=> 包名是:foo
=> 输入文件是:foo.tcl
=> 包名是:foo
=> 输入文件是:bar.tcl
=> 包名是:foo
=> 输入文件是:foo.tcl
=> 包名是:foo
=> 输入文件是:bar.tcl

-同名 折扣值
此选项设置自定义构建配置选项的值 姓名折扣值.

仅当“.critcl" 实际上是输入文件
定义并使用自定义构建配置选项 姓名.

生成 TEA 包时,此选项无关紧要(请参阅选项 -茶 以上)。

结构


由 critcl 生成的包具有以下基本结构:

+- pkgIndex.tcl
+- Critcl-rt.tcl
+- license.terms(可选)
|
+- tcl(可选)
| +-
|
+-
+-

笔记

[1] 文件“pkg索引.tcl" 是 Tcl 期望的标准包索引文件
包管理。 它是在搜索包期间获得的,并声明
打包到 Tcl 及其文件,以及如何处理它们。

[2] 文件“critcl-rtcl" 是一个帮助文件,其中包含了
"pkg索引.tcl”来执行它的任务。

[3] 文件“许可条款" 是可选的,只有在 ".critcl" 归档
包是从使用的命令生成的 批评::许可证 申报包裹
作者和许可证。

[4] 用命令声明的所有文件 Critcl::tsources 被放入子目录
"TCL".

[5] 将critcl 生成的共享库放入特定平台的子库中
目录。

整个结构,尤其是最后一点,使我们能够稍后合并结果
(对于相同的包和版本)多个目标平台到一个目录中
结构没有冲突,只需简单地相互复制顶级目录。 这
只有可能发生冲突的文件在和 ”TCL" 目录,对于这些我们
知道它们在目标之间是相同的。 这种合并的结果将如下所示:

+- pkgIndex.tcl
+- Critcl-rt.tcl
+- license.terms(可选)
|
+- tcl(可选)
| +-
|
+-
| +-
+-
| +-
+-
+-

变化 用于 VERSION 2.1


[1] 修复了其中的错误 Critcl::tsources 将相对路径解释为相对于
当前工作目录而不是相对于“.critcl" 文件使用
命令,就像所有其他此类命令一样。

[2] 固定内部结构,防止为多个“.critcl" 文件到
他们之间泄漏。 尤其, 批判::tk 不是全局配置选项
了。

[3] 修复命令 批评::许可证 在“编译和运行”模式下为空操作,
而不是抛出错误。

[4] 修复了 critcl 应用程序对“编译运行”结果缓存的干扰
in -包装 模式,让它使用一个完全独立的(默认情况下是瞬态的)
该模式的目录。

[5] 修复了更改为“.critcl" 文件没有导致模式重建
“编译并运行”。 所有相关的 API 命令现在确保 UUID 更改。

[6] 修复了后端处理的错误 批评::调试 其中伴随的 c 源
一个 ”.critcl" 文件未使用调试选项编译,尽管 ".critcl“ 文件
是。

[7] 修正错误 批评::调试 这阻止了模式“全部”的识别
不是命令的第一个参数。

[8] 修复了“预加载" 阻止其在非 Windows 平台上编译。

[9] 修复了在命令名称中处理命名空间限定符的长期存在的错误
的论点 critcl::cproccritcl::c 命令. 现在可以指定一个
完全限定的命令名称没有问题。

[10] 扩展/重做 Critcl::tsources 成为声明“的规范方式”.tcl"
即使是“编译和运行”模式的伴随文件。

[11] 扩展/重做 Critcl::tsources 允许使用“.critcl" 文件作为它自己的
Tcl 配套文件。

[12] 扩展 批评::框架 在内部检查 OS X 构建目标,并忽略
如果不是,则声明。

[13] 扩展 批评::失败 在一个“.critcl" 文件。
第一次调用强制构建(如果尚未完成)以获取结果。 更远
调用返回第一次调用的缓存结果。

[14] 扩展了确定代码中环境变量 CC 的处理
编译器用来处理(即删除)编译器、编译器文件的路径
在编译器本身之后指定的扩展和编译器选项,只留下
编译器的裸名。

[15] 扩展了处理搜索预加载库的代码以打印它的路径
搜索,使搜索失败的调试更容易。

[16] 新命令 临界::tcl 可用于最低限度地声明Tcl的版本
需要构建和运行“.critcl" 文件和包。如果不是,则默认为 8.4
宣布。 扩展 critcl 以包含所有 Tcl 8.4、8.5、
和8.6。

[17] 新命令 临界值::加载 强制构建和加载“.critcl" 文件。这是
覆盖 critcl 的默认延迟构建和按需加载方案的官方方法
对于“编译和运行”模式。

备注 使用后 临界值::加载 / 批评::失败 在一个 ”.critcl" 文件不是
可以再在该文件中使用 critcl 命令了。 这样做会引发错误。

[18] 扩展了“#line”编译指示的使用 info 框架 (如果有的话)到
向 C 编译器提供准确的行号到“.critcl" 文件为
报告警告和错误。

[19] 扩展 批评::检查 使用日志记录帮助调试构建时检查
环境,加上一个额外的可选参数来提供标签。

[20] 添加了一个新命令 critcl::检查链接 它不仅尝试检查环境
通过编译代码,以及它的可链接性。

[21] 添加了一个新命令 critcl::味精 用于消息传递,例如命令 批评::错误
错误报告。 同样,这是允许包的用户使用的钩子
覆盖。 模式使用的默认实现 & 运行 什么也没做。 这
模式的实现 生成 将消息打印到标准输出。

预期用途用于报告由以下人员确定的结果 批评::检查
critcl::检查链接 在构建过程中,在出现问题时帮助调试
带支票。

[22] 暴露了参数处理的内部结构 临界::过程 供高级使用
用户。 新命令是

[1] Critcl::参数名称

[2] Critcl::argcnames

[3] Critcl::argc签名

[4] Critcl::argvardecls

[5] critcl::arg转换

请参阅部分 先进的 嵌入式 C 代码批评 包文档
细节。

[23] 扩展了critcl包进行拦截 提供 并记录文件->
包名映射。 加上其他内部更改现在允许使用命名空间
包名,同时仍然使用正确的路径名和 init 函数。

[24] 删除未使用的命令 批评::优化批评::包括.

[25] 掉落 -lib 来自 critcl 应用程序的模式。

[26] 删除了对 Tcl 8.3 及之前版本的支持。

变化 用于 VERSION 3


[1] 命令 批评::平台 在 2.1 版中被弃用,由
critcl::目标平台,但为了兼容性而保留。 现在它已被删除。

[2] 命令 critcl::编译 在 2.1 版中保留了语义
与其矛盾,为了兼容性。 这个矛盾已经消除,
将命令的可见语义更改为与其名称一致。

[3] 由于两个不兼容的可见性,因此必须更改到版本 3
以上变化。

[4] 用代码处理一个新选项扩展了应用程序包 -茶. 指定
这个选项调用一个特殊的模式,其中 critcl 生成一个 TEA 包,即包装
输入到目录层次结构和提供它的支持文件 TEA-
相似的构建系统。

这个新选项,以及 -包装,互相排斥。 如果两者都指定了最后使用的
选项优先。

生成的包目录层次结构大多是自包含的,但不是完全的。
它不仅需要 Tcl 的工作安装,还需要工作安装
的包裹 md5CMDLINE. 这两个都是由 束。
不是必需的,但建议安装任何可以
加速md5的运行,即 加密套件, tcllibc特雷夫.

[5] 使用新命令扩展了 critcl 包 批评::扫描 走上一条路
".critcl" 文件,静态扫描它,并返回许可证、版本、列表
其配套文件、导入的 API 列表以及开发人员指定的自定义列表
配置选项。 此数据是所描述的 TEA 包装的基础
以上。

请注意,这是一个 静止 扫描。 而其他构建模式可以(必须)执行
".critcl" 文件并针对组装的 C 代码做出特定于平台的决定,
伴随文件等。TEA 包装模式无法制作平台-
具体决定。 它必须包装所有可能需要的东西
在实际建造时。 因此,静态扫描。 然而,这有它自己的一套
问题,即无法找出同伴的任何动态构造
文件路径,至少是它自己的。 因此:

[6] 使用命令扩展了基于 critcl 的包使用的 API critcl::拥有。 而
此命令被静态扫描器描述的常规构建模式忽略
以上将其参数作为必须包装的伴随文件的名称
进入 TEA 包,否则扫描仪无法识别,例如
因为动态路径 Critcl::tsources, Critcl::csources, 获得来源
直接或简单地作为附属数据文件。

[7] 使用命令扩展了基于 critcl 的包使用的 API 批评::api 等加工。为
存根表的管理,无论是它们的使用,还是声明和导出。

请参阅部分 存根 批评 包文档
细节。

[8] 使用命令扩展了基于 critcl 的包使用的 API critcl::用户配置
用于管理开发人员指定的自定义配置选项,无论是他们的
使用和/或声明。

请参阅部分 定制 构建 配置批评 包文档
了解详情。

[9] 使用命令扩展了基于 critcl 的包使用的 API
critcl::描述, critcl::总结, 批评::主题, 批评::元
Critcl::构建需求 用于/关于 TEApot 元数据的声明
包。

请参阅部分 小包装 时间批评 包文档
细节。

变化 用于 VERSION 3.0.1


[1] 错误修正。 详细:

[2] 固定记录 Tcl 版本要求。 保留包名和版本
一起,不间断生成的元数据和生成的包加载命令。

[3] 修复了构建脚本:安装或包装 TEA 时,生成任何丢失的脚本
目录

[4] 修改构建脚本以在窗口出现时正确退出应用程序
他们的 GUI 通过 (X) 按钮关闭。

[5] 删除了一个 8.5-ism(开放 wb),它已经滑入主构建脚本。

[6] 修改了示例构建脚本以将不同的输出分开
示例(和包)通过添加空行。

[7] stack::c 示例错误修正:包括用于伴随文件的 API 声明。

[8] 扩展文档:注意到需要一个 C 的工作安装
编译器。

[9] 扩展了 Windows 目标定义和代码以处理使用的清单文件
通过现代 MS 开发环境。 请注意,此代码同时处理
可能性,使用清单的环境和(旧的(er))环境没有。

[10] 扩展了 Windows 64 位目标定义和代码以自动检测需要
帮助库“bufferoverflowU.lib”并重新配置编译和链接
适当地命令。 我们假设库必须在存在时被链接。
如果库存在但不需要,这应该没有害处。 只是多余的。
我们在环境变量 LIB 指定的路径中搜索库。

变化 用于 VERSION 3.0.2


[1] 修复了在编译运行模式下放入 auto_index 的命令不正确的问题
由 Tcl 的 [unknown] 命令找到。

[2] 修复了客户端数据的数组键不匹配破坏使用和删除功能的问题
程序。 由 Jos DeCoster 报告,带有补丁。

[3] 实现了一个命令行选项 -L,相当于选项 -I, 仅用于图书馆
搜索路径。

[4] 修复了 github 问题 5 和 8。解决了缺少的变量 ::errorInfo。 它
应该总是存在,但是似乎有 Tcl 的修订版
违反这个假设。

变化 用于 VERSION 3.0.3


[1] 修复了 github 问题 5 和 8,例如 build.tcl 脚本。 围绕一个
缺少变量 ::errorInfo。 它应该始终存在,但似乎有
Tcl 的修订版违反了这一假设。

变化 用于 VERSION 3.0.4


[1] 修复了读取传入代码时包的 initname 的生成
stdin 并且没有正确的路径。

[2] 修复了 github 问题 11。现在在 Windows 上使用 /LIBPATH 而不是 -L (libinclude
配置设置)。

[3] 扩展 critcl 以处理 -l 选项的 -l:path 格式。 GNU ld 2.22+ 处理这个
通过按原样搜索路径。 指定静态库时很好,如普通 -l
寻找优先于静态的共享库。 critcl 现在处理它,因为
较旧的 GNU ld 不了解它,也不了解各种特定于供应商的链接器。

[4] 修复了 github 问题 #12。 Critcl 现在确定正在使用的 MSVC 版本并使用
它可以在各种链接调试选项之间切换。 简化处理
bufferoverflowU.lib 也是,利用相同的机制并折叠两者
配置部分我们重新合二为一。

[5] 将#line 编译指示插入生成的 C 代码中,以避免
对各种编译器强加的行号参数的限制,以及更多
准确的。

[6] 修改参数处理。 选项 -libdir 现在也隐含 -L 作为其参数。

[7] 选项 -show 的扩展处理(Critcl::显示配置) 列出路径
数据来自的配置文件。 适合调试配置
处理。

[8] 使用目标扩展构建脚本以重新生成嵌入式文档,
和图表,并生成一个版本。

变化 用于 VERSION 3.0.5


[1] 修复了新代码中指定 C 代码时触发的 #line pragmas 的错误
没有前导空格。

[2] 扩展文档以包含许可证、源检索、
安装程序和开发人员指南。

变化 用于 VERSION 3.0.6


[1] 修复了 github 问题 10。critcl 应用程序现在提供了正确的退出代码 (1)
在构建失败时,而不是总是指示成功(状态 0)。

[2] 修复了 github 问题 13。用于发布版本的 bufferoverflowU.lib 的处理是
与调试版本的处理不一致。 现在同样处理
(有条件的)两种情况。

[3] 文档清理,主要在安装指南中,以及 README.md 所示
github上

变化 用于 VERSION 3.0.7


[1] 修复了生成的代码 critcl::c++命令. 发出的代码传递了一个非
静态字符串表 Tcl_GetIndexFromObj,违反合同,
要求表具有固定地址。 这是一个等待粉碎的记忆
发生。 感谢 Brian Griffin 提醒我们注意一般问题。

变化 用于 VERSION 3.1


[1] 添加了一个新的更高级别的包 Critcl::iassoc.

这个包简化了将数据与解释器相关联的代码的创建
通过 Tcl Tcl_(获取|设置)关联数据() 蜜蜂。 用户可以专注于他的数据,同时
支持此功能的所有必要样板 C 代码均由该包生成。

这个包使用了几个添加到核心的新特性 批评
包,见下文。

[2] 增加了更高级别的包 批评::类.

这个包使用类和实例简化了 C 级对象的创建
命令。 用户可以使用类变量和实例变量编写类定义
和 -methods 类似于 TclOO 类,具有所有必要的样板 C 代码
支持这个由包生成。

这个包使用了几个添加到核心的新特性 批评
包,见下文。

[3] 扩展了处理 TEApot 元数据的 API。 添加了命令 批评::元?
查询存储的信息。 目前设想的主要用途是检索
实用程序命令的当前包的名称,用于构造名称。 这个
由于包的静态扫描,特定信息始终可用
执行第一个 critcl 命令时的文件。

新包 Critcl::iassoc批评::类 (见上文)是这个的用户
命令。

[4] 用命令扩展了 API, 暴击::name2c, 暴露转换过程
将 Tcl 名称分为基本名称、名称空间和 C 名称空间。 这使更高级别的
生成相同类型的 C 标识符的代码生成器 批评 本身。

新包 批评::类 (见上文)是这个命令的用户。

[5] 用命令扩展了 API, 批评::来源, 执行在
当前文件上下文中的单独文件。 这使管理更容易
更大的代码体,因为它允许用户将它们拆分成更容易
消化较小的块,而不会导致生成多个包。

[6] 与上一条相关,对API进行了扩展,使用命令来转移集合
将生成的 C 代码存入内存。 这使得使用命令更容易
在高级代码生成器中嵌入 C 代码。

见本节 高级: 改道 有关提供的命令的详细信息。

新包 批评::类 (见上文)是这些设施的用户。

[7] 使用命令扩展 API,帮助开发人员生成正确的 C
#线 指令。 这允许更高级别的代码生成器生成和插入
他们自己的指令,确保他们的代码中的编译错误是正确的
归因于。

见本节 高级: 地址 颠覆性技术 有关提供的命令的详细信息。

新包 Critcl::iassoc批评::类 (见上文)是这些的用户
设备。

[8] 使用命令扩展 API,使用户能够定义自定义参数
和结果类型 ::critcl::cproc.

见本节 高级: 扩展 进程 有关提供的命令的详细信息。

变化 用于 VERSION 3.1.1


[1] 错误修正。 详细:

[2] 修复了错误#args 错误的生成 critcl::cproc 和派生代码
(批评::类 基于 cproc 的方法)。 如果没有参数,则使用 NULL,并取
抵消。

[3] 修复了对包名的处理 批评::类. 忘了它们可能包含
命名空间分隔符。 撞到版本 1.0.1。

[4] 扩展了一个 批评::类 为清楚起见,在创建实例时生成错误消息。
撞到版本 1.0.2。

变化 用于 VERSION 3.1.2


[1] 增强。 详细:

[2] 扩展 critcl::cproc 能够以有限的方式处理可选参数。
这将自动提供给 批评::类 基于 cproc 的方法也是如此。

[3] 错误修正 分配 Tcl 8.4 的仿真。 正确设置未使用的变量
空字符串。 仿真包的碰撞版本 分配84 到1.0.1。

变化 用于 VERSION 3.1.3


[1] 增强。 详细:

[2] 添加了新的参数类型“pstring”,对于“Pascal String”,一个计数的字符串,即一个
字符串指针和字符串长度的组合。

[3] 添加了新方法 critcl::argtype 支持::critcl::argsupport 定义和使用
参数类型的附加支持代码,这里由上面的“pstring”使用
定义必要的结构。

[4] 包中的半错误修正 批评::类Critcl::iassoc. AS 的编译指示
元数据扫描器以确保模板文件是包的一部分。
版本分别上升到 1.0.4 和 1.0.1。

变化 用于 VERSION 3.1.4


[1] 包中的错误修正 批评::类. 在类结构中生成一个虚拟字段,如果
该类没有类变量。 如果没有这个变化,结构将是空的,
并且许多编译器无法处理这种类型。

[2] 修正了一个破坏 win64 配置的错字。

[3] 修复了问题 #16,命令文档中的一个错字 批评::类.

变化 用于 VERSION 3.1.5


[1] 修复了问题 #19。 制作提取MSVC版本号的正则表达式
更一般地使其在德语系统上工作。 这可能是
将来会重新访问,用于其他 Windows 语言环境。

[2] 修复了问题 #20。 使选项 -tea 在 Windows 上工作,至少在 unix 仿真中
像 msys/mingw 这样的环境。

变化 用于 VERSION 3.1.6


[1] 修复了问题 #21。 而存根表指针变量的多重定义是
对于目前看到的所有 C 链接器,C++ 链接器根本不喜欢这个。
重新编写代码以确保这组变量只生成一次,在
将要组装的所有部件的包装纸。

[2] 修复了问题 #22,命令标识符参数的处理
critcl::c 命令, critcl::cproccritcl::cdata. 我们现在正确地允许任何 Tcl
标识符并从中生成适当的内部 C 标识符。

作为其中的一部分,命令的签名 暴击::name2c 改变了。 现在的命令
提供四个值而不是三个值的列表。 新的价值是在
结束。

进一步适配了 package 的实现 批评::类, 用户
暴击::name2c. 这个包现在是 1.0.6 版本,需要 critcl 3.1.6

最后修复了选项的错误处理 -cname in critcl::c 命令
critcl::cproc.

[3] 修复了问题 #23。

变化 用于 VERSION 3.1.7


[1] 修复了问题 #24。 提取并无条件地显示在
构建日志。 防止用户错过警告,而不会导致构建
失败,可能仍然表明存在问题。

[2] 新功能。 输出挂钩。 所有非消息用户输出现在都通过
命令 批评::打印, 并且允许用户在使用 critcl 时覆盖它
应用程序包。

[3] 新功能,作者 Ashok P. Nadkarni。 平台配置可以继承值
在他们之前定义的配置。

变化 用于 VERSION 3.1.8


[1] 修复了为 Tcl 8.4 生成的包索引的问题。 加入命令列表
带分号,而不是换行符。

[2] 修复了问题 #26,它带来了我在修复时忘记考虑的用例
错误 #21(参见 critcl 3.1.6)。

变化 用于 VERSION 3.1.9


[1] 修复了问题 #27。 为各种替代 linux 添加了缺失的平台定义和
OS X 目标。

[2] 修复了问题 #28。 添加了缺失的 -mXX 标志,用于在 linux-{32,64}-* 处进行链接
的目标。

[3] 修复了问题 #29。 替换了在处理中使用原始“cheaders”信息
"cdefines" 和从它派生的适当的包含指令。

[4] 修复了 Andrew Shadura 被拒绝的 pull request #30 背后的问题。 动态地
从 Tcl 头文件中提取存根变量声明并生成
包代码中使用的匹配变量定义。 生成的代码将
现在始终与标题一致,即使 critcl 自己的副本是
替换为系统标题。

[5] 修复了问题 #31。 Andrew Shadura 接受的补丁,带有更改(评论),用于
更容易将 critcl 与操作系统包系统集成,替换 critcl 的副本
用自己的 Tcl 头文件。

[6] 修复了问题 #32。 Andrew Shadura 的合并拉取请求。 各种错别字
文档和评论。

[7] 修复了问题 #33。 更好地处理以点开头的文件。

作者


让·克劳德·威普勒、史蒂夫·兰德斯、安德烈亚斯·库普利斯

使用 onworks.net 服务在线使用 critcl


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad