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: 必须提示重载方法:toArray,编译:(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

这之前是可以通过的,但现在失败了。如果您已在上面的master分支中修复此问题,且尚未发布,请放心关闭此条目。

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

9 答案

0

评论者:wcohen

此补丁在toArray的(arr: this)参数上添加了类型提示,这导致在JDK 11 EA 21上成功编译和测试。也适用于JDK 8和10。

0

评论者:michalmarczyk

谢谢!已应用并推送。将尽快发布新版本。

0

评论者:wcohen

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

0
评论由:jafingerhut

为了供将来参考,如果除了我之外还有其他人对此感兴趣,这个错误在 JDK 10 及之前版本不会发生,因为接口 java.util.Collection 中只有一个名为“toArray”的 1 参数方法,即: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” 的 1 参数方法: 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 编译器无法确定在 deftype 表达式中要使用哪个方法,该 expression 尝试使用 1 个参数('this' 加 Cloure deftype 方法定义中的更多参数)定义 toArray。
0

评论由:xtreak

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

0

评论由:kanwei

rrb-vector 是否会有新版本发布?JDK 11 现在在 RC 阶段,这个问题在 master 上已经修复了。谢谢!

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 报告)
...