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

欢迎!请查看关于页面以获取更多关于如何工作的信息。

+1
Clojure

你好,

我正在处理一个在 Clojure 1.12.0-master-SNAPSHOT 上再次运行测试套件的项目。

在这个版本的 Clojure 上,(drop Long/MAX_VALUE []) 表达式抛出了 ArithmeticException。

我直接在包含提交号 1b3a5065b7f533d4fd7109686fcc4489163b916c 的 Clojure 仓库中进行测试,我也遇到了同样的问题。

$ java -jar clojure.jar Clojure 1.12.0-master-SNAPSHOT user=> (drop Long/MAX_VALUE []) 执行错误(ArithmeticException)在 java.lang.Math/toIntExact (Math.java:1074)。整数溢出

我只是想提一下这件事,因为我在 JIRA 上没有找到关于这个问题的报告。

作为一个备注 - 由于 `IDrop` 接口只声明了一个方法 `drop(int n)`,如果值不适用于整数,那么 `drop` 函数会失败,例如 `(drop 2147483648 [])`。

2 个回答

+1

谢谢,已记录在 https://clojure.atlassian.net/browse/CLJ-2787。我们可能会决定不修复此问题,但在 1.12 发布前会查看它。

+1

关于为什么会重要,您有更多的信息吗?您是在什么情况下看到这个问题的?

嗨,Alex,

感谢您查看了这个问题。我在进行生成式烟雾测试时遇到了这个问题,其中我生成了一个用于限制和偏移值的选项映射,这些值被传递给Clojure的take和drop函数。

失败的测试是这里
https://github.com/clojure-emacs/logjam/blob/master/test/logjam/event_test.clj#L17
...