欢迎!请查看关于页面以了解更多关于如何使用本站的信息。
我在工作于 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 添加到库目录后,core.reducers 在 java 1.6 下可以正常工作。
Jason,你提到在2012年5月17日的评论中,它适用于所有的 core.reducers。我不明白。在没有应用你的补丁的情况下,我可以在从 Git 仓库上拉取的 Clojure 新鲜项目下运行“./antsetup.sh; ant”,在先前提到的任何一个 JDK 1.6.0 版本上运行都不会在测试期间出现错误。你是不是说,core.reducers 目前没有测试来执行现有问题,但你的补丁添加了这样的测试,即使代码没有其他更改,也会失败吗?
是的,这一点没错。现在你提到这一点,我的补丁是第一个调用 r/fold(现有的测试做的是非并行归约)的单元测试。
2012年6月8日,Stuart Halloway 将补丁提交到 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
我认为把这种减少器包括进来用于并行处理将是一个良好的做法,或者扩展 CollFold 到 clojure.lang.Repeat(这可能更简洁)。
CollFold
clojure.lang.Repeat