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

欢迎!请查看关于页面了解更多关于该工具的信息。

+1
Clojure

大家好,

我正在用Clojure 1.12.0-master-SNAPSHOT重新运行我的测试套件。

在这个Clojure版本中,表达式(drop Long/MAX_VALUE [])会抛出算术异常。

我已经在Clojure仓库的commit 1b3a5065b7f533d4fd7109686fcc4489163b916c中直接尝试了它,那里也是发生异常的地方。

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

我只是想提一下这一点,因为我没有在JIRA上找到有关这个问题的issue。

作为备注——由于IDrop接口只声明了其唯一方法为`drop(int n)`,所以对于任何不适合整数的值,`drop`函数将会失败,例如`(drop 2147483648 [])`。

2 个答案

+1

谢谢,已登录为 https://clojure.atlassian.net/browse/CLJ-2787。我们可能决定不修复这个问题,但在1.12版本发布之前会进行检查。

+1

关于这个问题的更多信息?你是在什么场景下看到这个问题的?

嗨 Alex,

谢谢您对此事进行调查。我在一个生成烟雾测试中遇到了这个问题,在此测试中,我为limit和offset值生成了一个选项映射,这些值被传递给Clojure的take和drop函数。

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