2024年Clojure调查中分享您的看法!

欢迎!请查阅关于页面了解有关如何操作的一些更多信息。

0投票
Clojure
已关闭

build.xml文件中有要预编译的命名空间列表,但其中缺少了几个命名空间,因此没有为这些命名空间创建或包含到标准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投票
by

评论由:alexmiller发表

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

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