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版本的unchecked-inc。现在quot在这种情况下抛出异常。是否应该有自动提升版本的quot'和unchecked-quot?

5 个答案

0

由:jafingerhut发表的评论

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

与具有自动提升版本inc'和unchecked版本unchecked-inc的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 应增加 do what quot does now - see CLJ-1545

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