[#48023] 2つのCSVファイルの結合方法についてご質問 — askar k <tenzancode@...>
お世話になります。
[#48029] CSVファイルのデータをソートしたい — askar <tenzancode@...>
44GK5LiW6Kmx44Gr44Gq44Gj44Gm44GE44G+44GZ44CCDQoNCkNTVuODleOCoeOCpOODq+OBruOD
[#48044] Re: ruby 1.9.2とRails3 へのアップグレード — "Endo Akira" <endo4917@...>
アスカルさん
GyRCJSIlOSUrJWskNSRzGyhCCgobJEI/LjIsJEckOSEjGyhCCgo+IBskQjFzRiMkRyQ5ISMbKEIK
GyRCPy4yLCQ1JHMbKEIKGyRCMXNGIyQ1JHMbKEIKChskQkpWO3YkciQiJGokLCRIJCYkNCQ2JCQk
GyRCJEEkZyRDJEhKczlwJCxBYSQ5JC4kPyRIO1ckJCReJDkhIxsoQgpydWJ5GyRCJE4lUCE8JTgl
GyRCRVkhOSEiJDkkXyReJDskcyEjGyhCCgobJEIkSiQ8JCsbKEJydm0bJEIkLCRKJC8kSiRDJD8k
[#48062] 小数点つき時刻情報とTime#parse — Mitsuo KASAHARA <m.kasahara13@...>
笠原ともうします。
2011年5月9日10:29 Mitsuo KASAHARA <m.kasahara13@gmail.com>:
えぐち@エスアンドイーです
2011年5月9日13:43 EGUCHI Osamu <eguchi@sandeinc.com>:
えぐち@エスアンドイーです
2011年5月9日15:01 EGUCHI Osamu <eguchi@sandeinc.com>:
2011年5月9日20:07 Tanaka Akira <akr@fsij.org>:
2011年5月9日20:44 EGUCHI Osamu <eguchi@sandeinc.com>:
2011年5月9日21:09 Tanaka Akira <akr@fsij.org>:
2011年5月10日7:59 EGUCHI Osamu <eguchi@sandeinc.com>:
[#48092] 後継者募集 — MoonWolf <moonwolf@...>
MoonWolfです。
MoonWolf 様: 佐々木と申します.
MoonWolfです。
MonnWolf 様: 佐々木です.
[#48102] データ整形 — HIDE <u-zero@...>
いつもお世話になっております。臼井@ruby初心者と申します。
[ruby-list:48081] Re: 小数点つき時刻情報とTime#parse
2011年5月10日15:22 Tanaka Akira <akr@fsij.org>:
> 2011年5月10日14:28 EGUCHI Osamu <eguchi@sandeinc.com>:
>>> 条件なしで使われているんですか?
>>> 存在する時だけに使われるのでなく?
>>
>> 1.8と1.9の実装では方針が違うようで、、
>
> 64bit 整数型の存在に関する仮定に関して、
> 1.9 で変化したという覚えはないんですが、
> なにかありましたっけ?
64bit 整数型の有無により条件コンパイルで
ある場合は処理系の組み込み型を使い、
必要に応じてBignumにシフトチェンジするようです。
>> 1.9では64bit 整数型が存在しない場合、自前の倍長演算ルーチンを呼んでいました。
>> #Timeの内部表現もスケーリングがナノセコンドになっていました
>
> time.c の中身は知っていますが、自前の倍長演算ルーチンという
> 覚えはないですね。
wideint_t の事です。
32bitにおける倍長はその一部の特徴で、Bignumを適宜使っているようですね。
===
% ruby18 -ve 'p Time.at(10**99)'
ruby 1.8.7 (2010-08-16 patchlevel 302) [amd64-freebsd8]
-e:1:in `at': bignum too big to convert into `long' (RangeError)
from -e:1
% ruby19 -ve 'p Time.at(10**99)'
ruby 1.9.2p0 (2010-08-18 revision 29036) [amd64-freebsd8]
31688738506811430964562103462970695015158624952118316116207927812546661667451279832095319667-05-08
10:46:40 +0900
% ruby19 -ve 'p Time.at(10**99,234.567)-Time.at(10**99,123.456)'
ruby 1.9.2p0 (2010-08-18 revision 29036) [amd64-freebsd8]
0.000111111
===
その意味で
2011年5月9日14:23 Tanaka Akira <akr@fsij.org>:
> C に Bignum が組み込まれてればいいんですが。
という田中さんの指摘を支持します。
>> いま話題にしている1.8では64bit 整数型をイミュレーションするコードはないですが、
>> そのようなプラットホームでも [ruby-list:48070]で私が示したワークアラウンドは有効です。
>
> 理解できません。
ワークアラウンド=
Cで書かれたTime同士の引き算の桁落ちを Rubyで書いたメソッドで
回避することができているという意味です。
#そのようなプラットホーム=bccでコンパイルされた環境
> パッチの形で書いていただけると理解できるかもしれません。
>
> なお、私の案はパッチとして [ruby-list:48068] に書きました。
Cで書かれたメソッドを計算結果に変化がある形で変更するのは
(それが精度向上であっても)1.8 には取り込むべきではない
と言うのが私のスタンスです。
そもそも、時刻の差を Float で返すのは difftime() からの流れなのでしょうが、
溢れや丸め桁落ちなどの厄介を持ち込んでしまいました。
# 時刻の差(期間?)を示すクラスを用意すればよかった?
Time#at() にマイクロ秒を指定する第二引数を追加した時に見直すべきでしたが、
結果論ですね。
えぐち