[#34647] fork 不可能な環境での test_argv0_noarg — wanabe <s.wanabe@...>

ワナベと申します。

13 messages 2008/05/11
[#34667] Re: fork 不可能な環境での test_argv0_noarg — Yukihiro Matsumoto <matz@...> 2008/05/13

まつもと ゆきひろです

[#34742] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.7-preview3 をリリースしました。

14 messages 2008/05/18
[#34744] Re: [ruby-list:44957] Ruby 1.8.7-preview3 has been released — Takahiro Kambe <taca@...> 2008/05/19

お疲れ様です。

[#34800] Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...>

木村です。

18 messages 2008/05/22
[#34801] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/22

こんにちは、なかむら(う)です。

[#34824] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/23

木村です。

[#34850] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/26

木村です。

[#34854] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/26

こんにちは、なかむら(う)です。

[#34889] Ruby 1.8.7-preview4 test-all failed in OpenSSL::TestSSL — Nobuhiro IMAI <nov@...>

いまいです。

10 messages 2008/05/29

[ruby-dev:34623] Marshal.load( Marshal.dump( Float ) )の不一致@1.8

From: "H.Holon" <holon@...>
Date: 2008-05-09 10:19:03 UTC
List: ruby-dev #34623
  H.Holonです。

ruby1.8において、以下の「Marshalで dumpして  
loadして戻す」
codeで不一致を意味するいくつかの数値が表示されます。


$ cat ~/tmp/test.rb
srand(1)
1000000.times do
     f = rand(0)
     fm = Marshal.dump(f)
     if Marshal.load(fm) != f then
        p fm, f
     end
end

$ ./ruby ~/tmp/test.rb
"\004\bf\e2.2971038112107323e-05"
2.29710381121073e-05
"\004\bf\e0.00012889203743071675"
0.000128892037430717
"\004\bf\e1.2080800923408574e-05"
1.20808009234086e-05
"\004\bf\e0.00016731992938723295"
0.000167319929387233
"\004\bf\e0.00015761288904592163"
0.000157612889045922
"\004\bf\0320.0017032264342446979"
0.0017032264342447
"\004\bf\e0.91493880848429388\000\377\377"
0.914938808484294
"\004\bf\0270.1635388066770247"
0.163538806677025
"\004\bf\0320.0018947760614906883"
0.00189477606149069
"\004\bf\0310.015573558744790716"
0.0155735587447907


ruby1.9においては手近で試した範囲では問題ありません
(何も表示されません)。

 試しに Marshal文字列を stdlibの strtod() 
で小数に戻して
みたところ、誤差のない元の数値に戻りましたので、1.8
の現行の ruby_strtod()の精度不足だと思います。
 1.9の ruby_strtod()は別物になっているようですので
1.8のみの症状なのはそこが理由なのだと思います。

# backportは一瞬考えたのですが、1.9の ruby_strtod()は
# 一見さんの私には厳しいので、defineまわりの意味を
# 理解している方にお願いします…

----
H.Holon [ ラーダっぽい黒75の家 | http://radastery.jp/ ]





In This Thread

Prev Next