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

欢迎!请参阅关于页面以了解有关此功能的更多信息。

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版本,因此对此命名空间的AOT编译将在此决定构建时间而不是运行时间,因此不能包含在内。

0

评论由:alexmiller 发表

从Clojure 1.10开始,所有这些条件构建情况都已经删除。我相信clojure.instant和clojure.uuid现在正在以传递的方式编译,尽管不是显式的。

0

评论由:alexmiller 发表

实际上 clojure.parallel 仍然依赖于仅在 jsr166 中存在的东西,但其他所有内容都已移除了条件性。已添加缺失的修复。

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