2024年Clojure调查问卷!中分享您的想法。

欢迎!请参阅关于页面,了解更多关于如何使用本站的信息。

0
Clojure

Clojure 1.5的reducers兼容JDK的forkjoin版本(JDK 1.7+)或与外部jsr166 jar包。这给用户和环境带来了复杂性,并需要在构建过程中处理这两个选项。

jsr166代码是公共领域的,其他项目通常会将这些少量文件重新打包并随项目一同发送(类似于我们对asm所做的处理)。这将允许我们使用所有的JDK版本统一使用已知版本的jsr166,并可以废除我们在Clojure 1.5中引入的定制构建处理。

jsr166y与JDK 1.6+兼容,并且是Scala当前重新包装的版本。这是JDK 1.6和1.7的最佳选择。在JDK 1.8中,最佳选择将是java.util.concurrent中的内置版本,暂时跟踪jsr166e,但一旦有更新将变为jsr166e。许多fork/join修正已经移植到y和e。

以下是为JDK 1.8的几种选择:
- 为了最大兼容性,使用重新包装的jsr166y,无论JDK版本如何(最简单)
- 检查JDK版本,并使用java.util.concurrent
- 检查JDK版本,重新包装jsr166e并使用它

目前尚不清楚哪种选择是目前最佳。

1 答案

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