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

欢迎!请参阅关于页面以获取更多关于这个工作原理的信息。

0
Java Interop

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

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

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

是否应添加quot'和unchecked-quot?如果是,则是此票据还是单独的一份?

0

评论者:jafingerhut

Patch 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](https://clojure.atlassian.net/browse/CLJ-1254)(由jafingerhut报告)
...