2024 Clojure状态调查!中分享你的想法。

欢迎!请查阅关于页面,了解更多有关此功能的信息。

0
core.rrb-vector

我在 JDK 11 EA 版本构建上尝试测试 boot,并在依赖链中似乎有 fipp,它将 core.rrb-vector 0.0.11 作为依赖项。出现了以下错误:

 java.lang.IllegalArgumentException: Must hint overloaded method: toArray

clojure.lang.Compiler$CompilerException: java.lang.IllegalArgumentException: Must hint overloaded method: toArray, compiling:(clojure/core/rrb_vector/rrbt.clj:282:1)

         clojure.lang.ExceptionInfo: java.lang.IllegalArgumentException: Must hint overloaded method: toArray, compiling:(clojure/core/rrb_vector/rrbt.clj:282:1)

参考Travis构建: https://travis-ci.org/tirkarthi/boot/jobs/398611988#L803

这之前是可以通过的,但现在失败了。如果它在主分支上已修复但尚未发布,那么请随意关闭这个。

成功的构建: https://travis-ci.org/tirkarthi/boot/jobs/398610834

9 个答案

0

评论者:wcohen

这个补丁在 toArray 的 (link: this arr) 可变长度上添加了类型提示,导致在 JDK 11 EA 21 上编译和测试成功。也在 JDK 8 和 10 上运行。

0

评论者:michalmarczyk

谢谢!已应用并推送。不久将发布新版本。

0

评论者:wcohen

谢谢!今天早上我只签署/提交了Clojure CA。如果还有其他人我需要跟进,请告诉我。

0
_评论者:jafingerhut_

供未来参考,如果除了我之外还有其他人对此好奇,这个错误在JDK 10及之前版本中并未发生,因为在java.util.Collection接口中,只有一个名为"toArray"的重载方法,就是这个: https://download.java.net/java/early_access/jdk11/docs/api/java.base/java/util/Collection.html#toArray(T%5B%5D) 签名为 "<T> T[] toArray​(T[] a)"

从JDK 11开始,java.util.Collection接口中新增了另一个名为"toArray"的重载方法: https://download.java.net/java/early_access/jdk11/docs/api/java.base/java/util/Collection.html#toArray(java.util.function.IntFunction) 签名为 "default <T> T[] toArray​(IntFunction<T[]> generator)"

因此,如果没有类型提示,Clojure编译器无法确定在尝试用1个参数定义toArray(Clojure deftype方法定义中的'this'加上更多参数)的deftype形式中,期望哪个方法。
0

评论者:xtreak

感谢@jafingerhut提供信息。相关提交: http://hg.openjdk.java.net/jdk/jdk11/rev/3ef0862bbb3d 。这也似乎与Clojure主线分支存在问题,Will Cohen的补丁有助于测试通过。我已经在那里创建了一个相关问题: https://dev.clojure.org/jira/browse/CLJ-2374

0

评论者:kanwei

rrb-vector是否有可能发布新版本? JDK 11现在是RC,这个问题似乎在主分支上已经修复。谢谢!

0

评论者:gshayban

这已经在最新版本中,我认为这张票可以关闭了。

0

评论由:[email protected] 发布

此修改已合并至 https://github.com/clojure/core.rrb-vector/commit/b489b3249d56bb6a104c2d4ead2da8ade8dd29b4,并在版本0.0.12及更高版本中可用(0.0.13是撰写时的最新版本)。为了方便复制粘贴

[org.clojure/core.rrb-vector "0.0.13"]

0
参考: https://clojure.atlassian.net/browse/CRRBV-18(由xtreak报告)
...