[#43284] [Ruby 1.9 - Bug #4456] [Open] Time#strftime で %F 指定子に大きな幅を指定した際の不具合 — tadayoshi funaba <redmine@...>

14 messages 2011/03/02

[#43317] [Ruby 1.9 - Bug #4474][Open] 複数のスレッドからトランザクションに入ろうとした場合のPStoreの挙動 — Masaki Matsushita <redmine@...>

9 messages 2011/03/06

[#43327] [Ruby 1.9 - Feature #4483][Open] PStoreをデフォルトで複数のスレッドから扱えるようにしたい — Masaki Matsushita <redmine@...>

10 messages 2011/03/08

[#43365] [Ruby 1.9 - Bug #4536][Open] 定数参照について1.8と1.9の違い — Yukihiro Matsumoto <matz@...>

11 messages 2011/03/29

[ruby-dev:43358] [Ruby 1.9 - Feature #4529][Assigned] date_core と long 型

From: Yukihiro Matsumoto <matz@...>
Date: 2011-03-26 05:39:35 UTC
List: ruby-dev #43358
Issue #4529 has been updated by Yukihiro Matsumoto.

Status changed from Rejected to Assigned

このバグは混在していることが問題なのでrejectしてはいけないと思います。
「longなのが無意味ではない」ということは、longに揃えた方が良いという意味ですよね。
なるせさんに(longに揃える)パッチを当ててもらうようにお願いしても良いですか?
----------------------------------------
Feature #4529: date_core と long 型
http://redmine.ruby-lang.org/issues/4529

Author: Yui NARUSE
Status: Assigned
Priority: Normal
Assignee: tadayoshi funaba
Category: ext
Target version: 


おそらく既にご存じの通り、最近 date_core も含めて ext 中の shorten-64-to-32 を直しています。
それに際して date_core をいじっていて気づいたのですが、ユリウス日や年を long で保持したり int で保持したりしています。

int と long が混在していると、long から int へのキャスト時にオーバーフローが起こりえますし、
そもそも long は
* 環境によってサイズが違う (int も 理屈の上では違うはずだが、CRuby では 32bit しか確認してない)
* long は mswin64 でだけポインタとサイズが違うので、Unix な人には気づきづらいバグの温床になる
というような懸念があるので、特に理由が無いのであれば、int にするか、int64_t にするかした方がよいかと思います。
(CRuby は C90 だが、int64_t を configure で定義している)

例えば int に統一する場合のパッチは以下の通りです



-- 
http://redmine.ruby-lang.org

In This Thread