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

欢迎!请访问 关于 页面以了解更多有关如何使用本站的信息。

0
Clojure
已关闭

在 build.xml 中有一个要 AOT 的命名空间列表,但是有几个命名空间没有包含在该列表中,因此没有为这些命名空间创建或包含 standard clojure jar 文件中的 .class 文件作为构建的一部分。

缺少的命名空间包括
- clojure.core.reducers
- clojure.instant
- clojure.parallel
- clojure.uuid

建议: 附加的补丁文件添加了 clojure.instant 和 clojure.uuid 到编译的命名空间。clojure.parallel 已弃用,需要 JSR-166 jar,因此没有包含。

补丁: clj-1509.patch

关闭时备注: 已修复在 1.11.0-alpha2 中

4 答案

0

评论由:alexmiller 提出

进一步研究后,clojure.core.reducers 使用 compile-if 宏来确定 fork/join 的哪个版本可用,因此 AOT 编译该命名空间会在构建时而不是运行时固定这个决定,因此不能包含。

0

评论由:alexmiller 提出

从 Clojure 1.10 开始,这些条件构建案例已经移除,我相信 clojure.instant 和 clojure.uuid 现在正在隐式地进行递归编译。

0

评论由:alexmiller 提出

实际上,clojure.parallel仍然依赖于只存在于jsr166中的事物,但所有其他部分都已移除条件性。添加了缺失的补丁。

0
参考:https://clojure.atlassian.net/browse/CLJ-1509(由alexmiller报告)
...