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

简化命令行到
Clojure.Compile.exe(链接:-o outputAssemblyName)cljFileName...

0

评论者:dmiller

我以为我在提交之前已运行最后一次测试套件 -- 显然不是。提交的修复版本 7745dec 破坏了三个测试。一个测试显示函数的 :arglists 元数据类型错误。另外两个测试在函数序列化时出错。

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

我将撤销此更改,直到这些问题被修复。

0
...