2024 年 Clojure 状态调查!分享你的看法。

欢迎!请查看关于页面以了解更多关于这个网站如何工作的信息。

0 投票
Java 互操作

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

与 CLJ-1222 和 CLJ-1253 类似的问题,具有与 CLJ-1225 中描述的相同根本原因。因为在这个案例中希望解决的问题可能完全不同,所以从 CLJ-1253 分离出票。

Rich Hickey 在 CLJ-1225 的评论中声明,这种情况应该抛出异常。

问题:对于 inc(在给定输入 Long/MAX_VALUE 时会抛出异常)存在一个自动提升 inc' 和 unchecked-inc。quot 在此情况下现在抛出异常。应该有自动提升 quot' 和 unchecked-quot 吗?

5 答案

0 投票

评论者:jafingerhut

补丁 clj-1254-v1.txt 导致 (quot Long/MIN_VALUE -1) 由于结果溢出而抛出异常,如果参数都是 long。

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

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

0 投票

评论者:jafingerhut

补丁 clj-1254-2.diff 与 clj-1254-v1.txt 相同,只是它干净地应用到最新的 master。唯一的变化是在最近提交的更改上下文中进行的更改。

0 投票

评论者:alexmiller

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

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