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 发表的评论

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

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

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

0
...