[#38121] regex performace tuning and ABI compatibility — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

13 messages 2009/03/03

[#38191] big time — Tanaka Akira <akr@...>

思い立って、time_t を越える範囲を Time で扱うことに挑戦して

31 messages 2009/03/27
[#38194] Re: big time — Tadayoshi Funaba <tadf@...> 2009/03/28

> 思い立って、time_t を越える範囲を Time で扱うことに挑戦して

[#38196] Re: big time — Tanaka Akira <akr@...> 2009/03/28

In article <20090328.134401.209982445.tadf@dotrb.org>,

[#38202] Re: big time — Urabe Shyouhei <shyouhei@...> 2009/03/29

卜部です。

[#38205] Re: big time — Tanaka Akira <akr@...> 2009/03/29

In article <49CF6641.7010204@ruby-lang.org>,

[#38218] rinda/eval.rb — Masatoshi SEKI <m_seki@...>

咳といいます。

20 messages 2009/03/30
[#38219] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/03/31

In article <F01982B3-FBB5-497F-BA36-38FA250E7D69@mva.biglobe.ne.jp>,

[#38223] Re: rinda/eval.rb — Masatoshi SEKI <m_seki@...> 2009/03/31

咳といいます。

[#38229] Re: rinda/eval.rb — "U.Nakamura" <usa@...> 2009/04/01

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

[#38233] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/04/01

In article <20090401095853.B00A.C613B076@garbagecollect.jp>,

[#38222] *BSD で fork できない理由 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>

きしもとです

12 messages 2009/03/31

[ruby-dev:38210] [Bug #1330] BigDecimal オブジェクトを何度も使い回すと Bus Error が発生することがある

From: Kenta Murata <redmine@...>
Date: 2009-03-30 02:11:18 UTC
List: ruby-dev #38210
Bug #1330: BigDecimal オブジェクトを何度も使い回すと Bus Error が発生することがある
http://redmine.ruby-lang.org/issues/show/1330

起票者: Kenta Murata
ステータス: Open, 優先度: Normal
カテゴリ: ext, Target version: Ruby 1.8.8
ruby -v: ruby 1.8.8dev (2009-03-28) [i386-darwin9.6.0]

以下のように BigDecimal オブジェクトを何度も再利用すると BusError が起こります。

  $ ~/ruby-1.8.8-r23088/bin/ruby -rbigdecimal -ve '
    a = BigDecimal("10000000000000000000000000000000000000000")
    b = BigDecimal("0.0000000000000000000000000000001")
    1000000.times{ a + b }'
  ruby 1.8.8dev (2009-03-28) [i386-darwin9.6.0]
  -e:4: [BUG] Bus Error
  ruby 1.8.8dev (2009-03-28) [i386-darwin9.6.0]
  
  Abort trap

次のように、times のブロック内で何かを puts することで、これを回避できることが分かりました。

  $ ~/ruby-1.8.8-r23088/bin/ruby -rbigdecimal -ve '
    a = BigDecimal("10000000000000000000000000000000000000000")
    b = BigDecimal("0.0000000000000000000000000000001")
    1000000.times{ $stderr.puts ""; a + b }' 2>/dev/null
  ruby 1.8.8dev (2009-03-28) [i386-darwin9.6.0]

ところが、puts の引数を省略すると Bus Error が復活します。

  $ ~/ruby-1.8.8-r23088/bin/ruby -rbigdecimal -ve '
    a = BigDecimal("10000000000000000000000000000000000000000")
    b = BigDecimal("0.0000000000000000000000000000001")
    1000000.times{ $stderr.puts; a + b }'
  ruby 1.8.8dev (2009-03-28) [i386-darwin9.6.0]
  (非常に大量の改行文字は省略)
  -e:4: [BUG] Bus Error
  ruby 1.8.8dev (2009-03-28) [i386-darwin9.6.0]
  
  Abort trap


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

In This Thread

Prev Next