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

欢迎!请查看关于页面了解更多该网站的工作方式。

+1
Clojure

你好,

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

在这个Clojure版本中,形式(drop Long/MAX_VALUE [])抛出ArithmeticException。

我在Clojure仓库中直接尝试(使用提交1b3a5065b7f533d4fd7109686fcc4489163b916c,问题同样出现)。

$ 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
...