2011年5月10日

[ruby-list:48079] Re: 小数点つき時刻情報とTime#parse

2011年5月10日12:26 Tanaka Akira <akr@xxxxx>:
> 2011年5月10日7:59 EGUCHI Osamu <eguchi@xxxxx>:
>>>> rubyの実装では、、という文脈に於いても、rb_cv_type_int128_t が64bit 整数型で
>>>> configure.in での guess の対象になっています。
>>> それにどういう意味があるのか分かりません。
>>
>> 失礼 s/rb_cv_type_int128_t/rb_cv_type_int64_t/ でした。
>> これはマクロで int64_t と定義されています。

>> (実際 pack.c 等で使われています)
>
> 条件なしで使われているんですか?
> 存在する時だけに使われるのでなく?

1.8と1.9の実装では方針が違うようで、、

>>>>> 64bit 整数型の存在は仮定されていなかったと思いますが。
>> の 根拠 をお聞かせください。
>
> 過去、64bit 整数型がない環境で動作しており、
> それを捨てるという判断が行われたという話を見た覚えがありません。
>
> 過去 64bit 整数型がない環境で動作していたというのは Ruby の開発時期を
> 考えれば明らかだと思いますが、比較的最近まで実際に動作していた例としては
> bcc がそうだったように思います。

SunOS4(sun4m) の標準CCも64bit 整数型に対応していませんでした(rubyは動いた)。

> 64bit 整数型が存在しない環境を捨てるという決定がどこかで行われたのでしょうか?

1.9では64bit 整数型が存在しない場合、自前の倍長演算ルーチンを呼んでいました。
#Timeの内部表現もスケーリングがナノセコンドになっていました

いま話題にしている1.8では64bit 整数型をイミュレーションするコードはないですが、
そのようなプラットホームでも [ruby-list:48070]で私が示したワークアラウンドは有効です。

 えぐち


投稿者 xml-rpc : 2011年5月10日 14:28
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103691
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。