在<_rd>`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 的 ClassNotFoundException。

对于我来说,在 Ubuntu 11.10 + Oracle JDK 1.7.0 上,构建和测试是干净的。

0

由:jasonjckn

这是一个影响到所有 core.reducers 的问题。Alan Malloy 也遇到了这个问题。我尝试修复它,但最终还是升级到 JDK 1.7。我不明白为什么会发生这种情况。

0

由:jasonjckn

据我所知,这个问题仅限于在 mvn 测试中存在。

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

0

由:jafingerhut

贾森,你说你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主分支的提交,标题为"让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

评论者:alexiandergunnarson

我认为为了并行化的目的,最好包含这个reducer,或者将CollFold扩展到clojure.lang.Repeat(这可能会更简洁)。

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