中分享您的想法吧!

欢迎!请参阅关于页面以了解如何使用。

0
Clojure
已关闭

在build.xml中有一个需要进行AOT编译的命名空间列表,但其中某些命名空间没有出现在该列表中,因此没有为这些命名空间创建或包含在构建过程中的标准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的版本,因此如果编译该命名空间,则可以在构建时而不是在运行时固定这个决策,因此不可能包含在内。

0

评论者:alexmiller

截至Clojure 1.10,它依赖于Java 1.8,所有这些条件构建情况都已删除。我相信clojure.instant和clojure.uuid现在是递归编译的,尽管不是显式地。

0

评论者:alexmiller

实际上,clojure.parallel 仍然依赖于仅存在于jsr166中的事物,但其他所有内容均已去除条件性。添加了缺失的补丁。

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