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

欢迎!请参阅 关于 页面以获取有关此操作的更多信息。

0
Clojure

它应该按预期工作,例如

{{(Integer. 1N)}}

可能适用于 {{BigInt}}、{{BigInteger}} 和 {{BigDecimal}}。

可查看的方法是 {{c.l.Reflector.paramArgTypeMatch}},如 Rich 在 irc 中所述。

11 答案

0

由 trptcolin 发布的评论

关于如何影响位左移的 clojure-dev 列表中的问题:http://groups.google.com/group/clojure-dev/browse_thread/thread/2191cbf0048d8ca6

0

由 ataggart 发布的评论

CLJ-445 补丁修复了此问题。

0

由 trptcolin 发布的评论

此补丁会在对 BigInt 进行位左移测试失败:(bit-shift-left 1N 10000)。原因是补丁将 (BigInt, Long) 的分派从 (Object, Object) 更改为了 (long, int)。

显然,无法应用此补丁(除非另一个更改使其可行),但我将其作为对话的开端提出。

0

由 ataggart 发布的评论

来自邮件列表的我的评论

如果测试失败,这很可能是由于Numbers.shiftLeft(long,int)被
选择而不是Numbers.shiftLeft(Object,Object)。鉴于1N是一个
Object(可以超过long的大小),方法选择
是不正确的,因此补丁是损坏的。


单纯修改paramArgTypeMatch的建议是不够的,因为这个机制在编译器中,还不够智能,无法做这类决定。

0

评论者:redinger

考虑将此内容移出Release.next - 征求Chas的评论。

0
评论者:cemerick

恐怕在此时刻我没有对涉及的任何问题有特别的见解。我最初遇到了这个问题,并在Rich的建议下打开了工单。如果工单的文本导致任何人走上了没有结果的道路,我为此感到抱歉...
0

评论者:lvanderhart

与位运算相关的问题已不再有意义,因为已决定位运算仅适用于32/64位值。

尽管是一个有效的问题,但Rich将其降级。

0

评论者:alexott

原始补丁的修改版本

0

评论者:jafingerhut

亚历克斯,你介意用唯一的文件名来附加它吗?我知道JIRA允许我们创建具有相同文件名的多个附件,我也知道我们可以通过日期和上传附件的人的账户来区分它们,但给它们相同的名字似乎只会引起混淆。

0

评论者:alexott

已将更新补丁重命名为唯一的名称

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