欢迎!请参见关于页面获取更多关于其运作方式的信息。
我正在开发clojure.core/repeat减少函数。
评论者: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上构建,两者都能编译,但在测试期间遇到了ClassNotFoundExcepion异常,找不到jsr166y.ForkJoinTask类。
它在我使用Ubuntu 11.10 + Oracle JDK 1.7.0构建和测试时是干净无错误的。
评论者:jasonjckn
这是一个影响所有core.reducers的问题。Alan Malloy也遇到了这个问题。我试着修复,但最终还是升级到了JDK 1.7。我不明白这是为什么。
据我所知,这个问题仅限于mvn测试。
当我将clojure包含在leiningen项目中,并将jsr166y.jar添加到lib目录中时,core.reducers在java 1.6下工作正常。
Jason,你说在2012年5月17日的评论中,这个特性适用于所有core.reducers。我不太懂。在我的测试中没有发现错误的前提下,没有应用你的补丁,我可以在任何介于我早期评论中提到的JDK 1.6.0版本的新拉取的Clojure git仓库上运行"./antsetup.sh ; ant",并且在测试过程中没有出现任何错误。你是说也许core.reducers目前还没有测试来验证这个问题,但你的补丁添加了这样的测试,即使代码没有其他改动也会失败吗?
是的,你提到这一点后,我的补丁是第一个调用r/fold单元测试(现有的测试进行非并行降低)。
随着Stuart Halloway于2012年6月8日向Clojure.master提交的标题为"let reducers tests work under ant"的提交,补丁0001-repeat-for-clojure.core.reducers.patch(2012年5月11日)现在可以正确运行,甚至包括了需要class 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》(这可能更简洁)。