Ruby1.9.0_2のバグ(プラットホーム固有かも)その1

Leopard上のMac Portsruby1.9.0_2でMeteor(自作ライブラリ)のRuby移植版meteor.rb
をテストしていると下記のスクリプトの10000回ループのi=7643で「内部で組み立
てている正規表現が間違っている」とString#sub!がエラーをはく。
同じスクリプトLeopard標準添付のruby 1.8.6 (2008-03-03 patchlevel 114)
でテストすると正常動作。
ruby1.9.0_3でテストしてエラーになるようならruby-dev MLに報告する予定。

#ruby-dev MLを参照してみたところ、該当するバグの報告は見当たらなかった。

test_xml.rb

#!bin ruby
# -* coding: UTF-8 -*-
require 'meteor' 

pf = Meteor::ParserFactory.build(Meteor::Parser.XML,"test.xml", "UTF-8")
ps = pf.getParser
#puts ps.document
elm1 = ps.element("test","manbo","manbo")
ps.attribute(elm1,"id2","cc")
co_ps = ps.child(elm1)
10000.times { |i|
  co_ps.attribute("manbo",i.to_s)
  elm5 = co_ps.element("tech")
  co_ps.attribute(elm5,"eco","ema")
  co_ps.content(elm5,i.to_s)
  co_ps.print
}
co_ps.flush
ps.print
puts ps.document

test.xml

<?xml version="1.0" encoding="UTF-8"?>
<root>

<test manbo="manbo">
    <tech mono="mono">こまねち</tech>
</test>

</root>

テスト結果:正常動作(10回ループの場合)

<?xml version="1.0" encoding="UTF-8"?>
<root>

<test manbo="0" id2="cc">
    <tech mono="mono" eco="ema">0</tech>
</test><test manbo="1" id2="cc">
    <tech mono="mono" eco="ema">1</tech>
</test><test manbo="2" id2="cc">
    <tech mono="mono" eco="ema">2</tech>
</test><test manbo="3" id2="cc">
    <tech mono="mono" eco="ema">3</tech>
</test><test manbo="4" id2="cc">
    <tech mono="mono" eco="ema">4</tech>
</test><test manbo="5" id2="cc">
    <tech mono="mono" eco="ema">5</tech>
</test><test manbo="6" id2="cc">
    <tech mono="mono" eco="ema">6</tech>
</test><test manbo="7" id2="cc">
    <tech mono="mono" eco="ema">7</tech>
</test><test manbo="8" id2="cc">
    <tech mono="mono" eco="ema">8</tech>
</test><test manbo="9" id2="cc">
    <tech mono="mono" eco="ema">9</tech>
</test>

</root>


[2008.08.29 : 追記]
メソッド名変更に伴い、上記プログラムを修正。