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

欢迎!有关此功能的工作原理,请参阅 关于 页面以获取更多信息。

0
Java Interop

user=> (quot Long/MIN_VALUE -1) -9223372036854775808

与 CLJ-1222 和 CLJ-1253 类似的 issue,与 CLJ-1225 中描述的相同根本原因。由于长除法/在此情况下希望修复的解决方案可能相当不同,因此从 CLJ-1253 分开创建了票据。

Rich Hickey 在 CLJ-1225 的评论中表示,此情况应抛出异常。

问题:对于 inc(当给定为 Long/MAX_VALUE 时会抛出异常),有一个自动提升的 inc' 以及一个未检查的 unchecked-inc。quot 现在在这种情况下抛出异常。是否应该有自动提升的 quot' 和 unchecked-quot?

5 个答案

0

评论者:jafingerhut

Patch clj-1254-v1.txt 导致当参数都是 long 时,(quot Long/MIN_VALUE -1) 由于余数溢出抛出异常。

与具有自动提升版本 inc' 和未检查版本 unchecked-inc 的 inc 不同,没有自动提升的 quot' 和未检查的 unchecked-quot。此补丁不会添加它们。

是否应该添加 quot' 和 unchecked-quot?如果是这样,应该在票据中添加还是另开一个单独的票据?

0

评论者:jafingerhut

Patch clj-1254-2.diff 与 clj-1254-v1.txt 相同,except 此补丁适用于最新的 master。仅在最近提交中更改了上下文中的改动行。

0

评论由: alexmiller 提供

quot在溢出时应该抛出异常
quot'(我假设不是divide'?)应该在不溢出时自动提升
unchecked-divide应该添加以执行quot当前的操作 - 参见CLJ-1545

0
参考: https://clojure.atlassian.net/browse/CLJ-1254(由jafingerhut报告)
...