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

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

0
Clojure

我正在努力做 clojure.core/repeat reducer。

12 答案

0

评论者:jafingerhut

Jason,你尝试过使用 JDK 1.6.0 构建 这个吗?我在 Mac OS X 10.6.8 + Oracle/Apple JDK 1.6.0 和 Ubuntu 11.10 + IBM JDK 1.6.0 上尝试了,并且在两个平台上都编译通过了,但在测试期间失败,因为找不到类 jsr166y.ForkJoinTask。

在我使用 Ubuntu 11.10 + Oracle JDK 1.7.0 时,可以干净编译和测试。

0

评论者:jasonjckn

这是一个影响 core.reducers 中所有方法的问题。Alan Malloy 也经历过这个问题。我尝试修复它,但最终只是升级到 JDK 1.7。我不懂为什么会出现这种情况。

0

评论者:jasonjckn

据我所知,这个问题仅限于 mvn test。

当我将 clojure 包含在一个 leiningen 项目中,并将 jsr166y.jar 添加到 lib 目录时,core.reducers 在 java 1.6 上正常运行。

0

评论者:jafingerhut

Jason,你说你在2012年5月17日的评论中提到这个功能适用于所有的 core.reducers。我不理解。未经你的补丁修复,我可以在新拉取的Clojure git仓库中运行 "./antsetup.sh ; ant",在早期评论中提到的任何一个JDK 1.6.0版本上都不会在测试过程中出现任何错误。你的意思是,core.reducers当前没有测试来验证这个问题,但你的补丁增加了这样的测试,即使没有任何其他代码更改,也会失败吗?

0

评论者:jasonjckn

是的,你说对了。现在你这么一说,我的补丁是第一个调用 r/fold 的单元测试(现有的测试执行的是非并行归约)。

0

评论者:jafingerhut

Stuart Halloway于2012年6月8日对Clojure master做出的提交“让reducers测试在ant下工作”,使得2012年5月11日的补丁0001-repeat-for-clojure.core.reducers.patch现在即使在需要类jsr166y.ForkJoinTask的新单元测试中,也能够在Oracle/Apple JDK 1.6和Linux IBM JDK 1.6上正常运行。

0

评论者:jasonjckn

我在贡献者名单上。这个补丁还需要吗?
抱歉耽搁这么长时间。

0

评论者:jasonjckn

这个补丁应该等待http://dev.clojure.org/jira/browse/CLJ-993 提交后再进行。我认为有部分代码是共享的。

0

评论者:gshayban

从1.7.0版开始,repeat 现在可归约。

0

评论者:gshayban

我们可以关闭这个工单了吗?

0

评论人为:alexandergunnarson

我认为包括这个reducer以实现并行处理会很不错,或者也可以将CollFold扩展到clojure.lang.Repeat(这也许更简洁)。

0
参考:[https://clojure.atlassian.net/browse/CLJ-994](https://clojure.atlassian.net/browse/CLJ-994)(由jasonjckn报告)
...