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

欢迎!请参阅 关于 页面以获取更多关于如何使用本站的信息。

0
Clojure

我正在做 clojure.core/repeat还原器。

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 上尝试了,两次都能编译,但在测试期间出现 ClassNotFoundException for class jsr166y.ForkJoinTask的异常。

我在 Ubuntu 11.10 + Oracle JDK 1.7.0 上没有问题,构建和测试都很干净整洁。

0

评论者:jasonjckn

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

0

评论者:jasonjckn

据我所知,这个问题仅限于 mvn test 执行时出现。

当我在 leiningen 项目中将 clojure 包含进来,并将 jsr166y.jar 添加到 lib 目录时,使用 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主分支提交的关于"让reducer测试在ant下工作"的提交,补丁0001-repeat-for-clojure.core.reducers.patch,于2012年5月11日创建,现在即使在需要使用class 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 报告)
...