2024 年 Clojure 状态调查 中分享您的想法!

欢迎!请参阅 关于 页面以获取更多关于这里如何工作的信息。

0
ClojureCLR

我已经为 ClojureCLR 创建了一个补丁,允许 Clojure.Compile.exe 在给定一个 .clj 文件列表时构建一个单个 .dll 或 .exe。这基本上与 ILMerge 的概念相同,但它给拥有许多 .clj 文件的项目的开发人员带来了好处,而不仅仅是给 clojure.dll 本身。

可以在命令行中指定合并/分离选项,因此用户可以选择他们更喜欢的以前的方法。

我没有从 ClojureCLR 构建过程中删除 ILMerge,但是如果需要,理论上很容易做到。

ILMerge 正在运行,但其许可证不允许重新分发,并且需要每个编写程序的人员学会使用该工具(除非其已内置到 nLeiningen 和 vsClojure)。如果 Clojure.Compile.exe 最初就不生成许多 dll,似乎会更好。

基本用法是

Clojure.Compile.exe -include test.clj -include test2.clj -outputAssemblyName test.dll
或者--
Clojure.Compile.exe -i test.clj -i test2.clj -o test.dll

如果你省略了 -o 参数,它将与之前的功能相同。

3 个答案

0

评论者:dmiller

简化 CLI 到
Clojure.Compile.exe (链接:-o 输出程序集名称) cljFileName...

0

评论者:dmiller

我本以为在提交之前最后一次运行了测试套件,显然我没有。提交的修复版本 7745dec 导致了三个测试失败。一个测试显示了函数的 :arglists 元数据类型错误。另外两个测试在函数序列化时出错。

此外,文件的元数据从相对路径更改为绝对路径,因此在分布式ClojureCLR将显示我开发机上的文件路径。

我将撤销此更改,直到这些问题得到解决。

0
...