欢迎!请参阅关于页面以了解本站的工作方式。
我在处理 clojure.core/repeat reducer。
评论者: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 上编译和测试都没有问题。
评论者:jasonjckn
这是一个影响 core.reducers 的所有功能的问题。Alan Malloy也曾遇到过。我尝试修复它,但最终升级到了 JDK 1.7。我不明白这是为什么。
据我所知,该问题仅在 mvn test 中出现。
当我将 clojure 包含在 leiningen 项目中,并将 jsr166y.jar 添加到 lib 目录时,Java 1.6 上 core.reducers 正常工作。
Jason,你说它适用于你2012年5月17日的评论中提到的所有core.reducers。我不理解。在你没有应用补丁的情况下,我可以在新拉取的Clojure git repo中使用“./antsetup.sh ; ant”,在之前评论中提到的任何一个JDK 1.6.0版本上运行,测试期间没有出现任何错误。你的意思是core.reducers目前没有任何测试来模拟这个问题吗?但是,你的补丁添加了这样的测试,即使没有对代码进行其他修改,这些测试也会失败吗?
是的,你说对了。现在提到这个问题,我的补丁是第一个调用r/fold(现有的测试做非并行归约)的单元测试。
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。
我在贡献者名单里。这个补丁还必要吗?抱歉,延迟这么久。
这个补丁应该等到http://dev.clojure.org/jira/browse/CLJ-993被提交。我认为有了一些共享代码。
评论人:gshayban
现在1.7.0版本中的repeat可以被归约。
我们可以关闭这个工单吗?
评论者:alexandergunnarson
我认为将该reducer包含进来用于并行处理会很好,或者扩展CollFold到clojure.lang.Repeat(这可能更简洁)。
CollFold
clojure.lang.Repeat