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 的 (this arr) 裴数添加类型提示,从而在 JDK 11 EA 21 上成功编译和测试。JDK 8 和 10 也适用。

0

由 michalmarczyk 发表的评论:

谢谢!已应用并推送。很快将发布一个版本。

0

由 wcohen 发表的评论:

谢谢!另外,我今天早上才签署/提交了 Clojure CA。请告知我是否还有其他人需要跟进。

0
通过
_Comment made by: jafingerhut_

为了未来参考,以防除我之外的其他人感兴趣,这个错误在 JDK 10 和更早版本中没有发生,因为在接口 java .util .Collection 中只有这个名为 "toArray" 的单个参数方法: https://download.java.net/java/early_access/jdk11/docs/api/java.base/java/util/Collection.html# towardArray(T%5B%5D) with signature "<T> T[] towardArray(T[] a)"

从 JDK 11 开始,接口 java.util.Collection 中还添加了另一个名为 "toArray" 的单个参数方法: https://download.java.net/java/early_access/jdk11/docs/api/java.base/java/util/Collection.html# towardArray(java.util.function.IntFunction) with signature "default <T> T[] towardArray(IntFunction generator)"

因此,没有类型提示,Clojure 编译器无法确定在尝试定义具有单个参数的 toArray (在这个 Clojure deftype 方法定义中 "this" 加上额外参数) 的 deftype 表格中打算使用哪个方法。
0

Comment made by: xtreak

感谢 @jafingerhut 提供信息。相关的提交记录: http://hg.openjdk.java.net/jdk/jdk11/rev/3ef0862bbb3d 。这还似乎导致 Clojure 的 master 分支出现问题,Wil Cohen 的补丁帮助测试通过。我已在这里创建了相关问题: https://dev.clojure.org/jira/browse/CLJ-2374

0

Comment made by: kanwei

rrb-vector 是否有新的发布版本?JDK 11 已经是 RC 版,似乎主分支上的问题已经修复。感谢!

0

Comment made by: gshayban

这已在最新版本中,我认为这个工单可以关闭。

0

Comment made by: [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 报告)
...