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

欢迎!请参阅 关于 页面以了解更多关于其工作方式的详细信息。

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
--or--
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 元数据类型不正确。另外两个测试错误地处理了函数序列化。

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

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

0
参考: https://clojure.atlassian.net/browse/CLJCLR-25(由speige报告)
...